package cn.com.pc.content.support.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

@SuppressWarnings("Duplicates")
public class CMSTOAppArticleUtil {
	public static String pageSplitRegex = "(?i)<EPRO_SPLIT>";

	public static void main(String[] args) {
		String articleText="<TABLE style=\"WIDTH: 525px\" cellSpacing=0 cellPadding=1 width=520 align=center border=0><TBODY><TR vAlign=top><TD style=\"LINE-HEIGHT: 20px\" width=525><P><FONT color=#ff6600><STRONG></STRONG></FONT>&nbsp;</P><P><FONT color=#ff6600><STRONG>导购前言：</STRONG></FONT></P><P><FONT color=#ff6600><FONT color=#000000>　　08年3月最受网友关注的十大MP4排行榜为您总结PConline产品库中网友点击率最高的十款热门MP4。<STRONG>以下的数据来源于太平洋电脑网产品库对各品牌与产品的有效点击率统计，经过一套严密的统计程序及有效统计方法后得到的结果。</STRONG>在文章的上篇中，我们将为大家总结十大热门MP4中的第十位到第六位，以下是各大热门的MP4：</FONT></FONT></P><P><FONT color=#ff6600><FONT color=#000000></P></FONT></FONT><FONT color=#ff6600><FONT color=#000000></FONT></FONT><TABLE cellSpacing=1 width=525 align=center border=1><TBODY><TR><TD width=135 bgColor=#ff6633><P align=center><STRONG>上榜产品&nbsp;</STRONG></P></TD><TD bgColor=#ff6633><P align=center><STRONG>上榜理由&nbsp;</STRONG></P></TD><TD width=90 bgColor=#ff6633><P align=center><STRONG>产品报价&nbsp;</STRONG></P></TD></TR><TR><TD width=135></IMG></IMG></IMG></IMG></IMG></IMG></IMG></IMG></IMG></IMG><DIV align=center><IMG height=90 src=\"http://img.pconline.com.cn/images/product/2222/222271/mp4_anda_vx757_1l_sn.jpg\" width=120 border=0><BR><STRONG><FONT color=#ff0000>第一位</FONT></STRONG></DIV><DIV align=center>昂达VX757(4G)</DIV></TD><TD><P>　　昂达VX757支持RM/RMVB直接播放，真宽屏的设计让VX757无论在观看视频还是使用都有不错的表现。近期VX757大降百元，更受关注。</P></TD><TD width=90><P align=center>499元</P></TD></TR><TR><TD width=135><DIV align=center></IMG></DIV><DIV align=center></IMG><SPAN class=pic><IMG height=90 src=\"http://img.pconline.com.cn/images/product/1987/198775/mp4_apple_touch_1l_sn.jpg\" width=120 border=0></SPAN></IMG><BR><FONT color=#ff0000><STRONG>第二位</STRONG></FONT></DIV><DIV align=center>iPod touch(8G)</DIV></TD><TD><P>　　iPod touch支持多点触控的3.5英寸触摸屏,320×480像素,内置浏览器safari,苹果 iPod touch支持播放MOV,MP4以及H264视频格式文件。</P></TD><TD width=90><P align=center>2698元</P></TD></TR><TR><TD width=135></IMG></IMG><DIV align=center><SPAN class=pic><SPAN class=pic><IMG height=90 src=\"http://img.pconline.com.cn/images/product/2216/221684/mp3_oppo_s11_1l_sn.jpg\" width=120 border=0></SPAN></IMG></SPAN></IMG><BR><FONT color=#ff0000><STRONG>第三位</STRONG></FONT></DIV><DIV align=center>OPPO S11(4G)</DIV></TD><TD><P align=left>&nbsp;　全屏触控操作，加上OPPO的Smart智能化设计，RMVB直播、文件管理系统和双重密钥技术三大特点，配备了3.0寸的16：9触摸屏，分辨率达到480 X 272。</P></TD><TD width=90><P align=center>999元</P></TD></TR><TR><TD width=135><DIV align=center></IMG></IMG></IMG></IMG></IMG></IMG></DIV></IMG></IMG><DIV align=center><IMG height=90 src=\"http://img.pconline.com.cn/images/product/2169/216909/mp4_airo_v2000se_1l_sn.jpg\" width=120 border=0><FONT color=#000000>&nbsp;</FONT></DIV><DIV align=center><FONT color=#ff0000><STRONG>第四位</STRONG></FONT>&nbsp;</DIV><DIV align=center>艾诺V2000SE(2G)</DIV></TD><TD><P>　　艾诺V2000SE延续了经典外形，芯片则为高性价比华芯飞，保证兼容全码率的RM/RMVB视频同时，降低了成本，让消费者体验到廉价MP4的魅力!</P></TD><TD width=90><P align=center>399元</P></TD></TR><TR><TD width=135></IMG><P align=center><SPAN class=pic><IMG height=90 src=\"http://img.pconline.com.cn/images/product/2216/221674/mp4_ramos_rm850_1l_sn.jpg\" width=120 border=0><BR></SPAN><FONT color=#ff0000><STRONG><SPAN class=pic>第五位</SPAN></IMG><BR></STRONG></FONT></IMG>蓝魔RM850+(2G)</P></IMG></IMG></TD><TD><P>　　RM850+具备2.8寸QVGA分辨率TFT液晶屏幕，RK27XX采用先进ARM+DSP双内核架构，蓝魔RM850+支持AVI，DivX、XviD，MPEG-4 SP/ASP；RMVB可支持到分辨率800×480流畅播放。</P></TD><TD width=90><P align=center>499元</P></TD></TR></TBODY></TABLE><P><FONT color=#ff0000><STRONG>相关阅读：</STRONG></FONT><BR>　　<FONT color=#ff0000><FONT color=#0000ff><STRONG>3月最受网友关注的十大MP4排行榜 上篇</STRONG></FONT></FONT><FONT color=#000000> </FONT></P></TD></TR></TBODY></TABLE><P><EPRO_SPLIT></P><P><STRONG>昂达VX757</STRONG></P><P>　　昂达VX757全黑的亚克力正面与顶级铝合金拉丝工艺的完美结合，让机器充满了时尚气息。针对消费者不同的操作使用习惯，新品VX757采用了按键式操作，非常的便捷。机身正面的一点，也突出了机器整个品味。昂达VX757的屏幕采用了3.0英寸16:9真宽屏设计，为用户提供更高质量的视觉享受。</P><P align=center><IMG title=昂达vx757 alt=昂达vx757 src=\"http://img1.pconline.com.cn/pconline/0802/27/1232386_image001.jpg\" border=0></P><P align=center><FONT color=#3366cc>昂达 VX757(2G)</FONT>&nbsp;&nbsp;<U><FONT color=#3366cc>图　库</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>评　测</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>论　坛</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>报　价</FONT></U></P><P align=left>　　VX757采用了处理速度高达400MHZ的内核芯片，足够满足直接对RM/RMVB格式的支持，同时直接支持FLV/AVI/MOV/ASF/MP4/WMV/3GP/MPG等视频格式。VX747支持MP3、WMA多种格式歌曲播放，对APE、FLAC无损压缩音乐格式的全面支持。此外，昂达VX747还支持高速USB 2.0接口、游戏、双线程任务、支持LRC歌词显示、图片浏览、文本阅读、高清晰录音、FM收音等基本功能。并且可以支持最高达32GB Micro SD(TF)卡（SDHC，高容量存储卡）扩充等。</P><P align=center><IMG title=昂达VX757 alt=昂达VX757 src=\"http://img1.pconline.com.cn/pconline/0803/12/1242851_image001.jpg\" border=0></P><P align=center><EPRO_SPLIT></P><P align=left><STRONG>iPod touch</STRONG></P><P align=left>　　iPod touch的出现依然延续了苹果\"机不惊人，死不休\"的业界风范，这部集无线、触屏、多媒体等先近技术于一体的iPod touch翻开了随身听发展史的新一页。iPod touch上独特的操控方式打破了MP3的传统，让所有精彩都触手可及。iPod touch上体现了苹果在业界领先的技术和高深的造诣，精致简约的外形和强大的功能让iPod touch成了业界竞相抄袭的对手。</P><P align=center><STRONG><IMG title=\"iPod touch\" alt=\"iPod touch\" src=\"http://img1.pconline.com.cn/pconline/0709/11/1103319_touch21331_mthumb.jpg\"></STRONG></P><P align=center></P><P align=center><FONT color=#3366cc>苹果 iPod touch(8G)</FONT>&nbsp;&nbsp;<U><FONT color=#3366cc>图　库</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>评　测</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>论　坛</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>购买地点</FONT></U></P><P align=center><STRONG><STRONG><IMG title=苹果iPod height=279 alt=苹果iPod src=\"http://img2.pconline.com.cn/pconline/0707/20/1062115_070720_iphone_033s.jpg\" width=447 border=0 touch评测></STRONG></STRONG></P><P align=center></P><P align=center></P><P align=left><STRONG>　</STRONG>iPod touch的操作界面完全沿用了iPhone上的风格，3D式的菜单，随意拖放的按键，同时还加入了让人如痴如醉的Cover Flow功能，随着手指的轻轻滑动，一张张漂亮的图片在眼前不停地切换。iPod touch支持多点触控的3.5英寸触摸屏,320×480像素,内置浏览器safari,苹果 iPod touch支持播放MOV,MP4以及H264视频格式文件。</P><P align=center><STRONG><IMG title=\"iPod touch\" alt=\"iPod touch\" src=\"http://img1.pconline.com.cn/pconline/0709/06/1099057_070906_newipod_20.jpg\" border=0></STRONG></P><P align=center><EPRO_SPLIT></P><P><STRONG>OPPO S11</STRONG></P><P>&nbsp;&nbsp; OPPO最近即将上市的新品S11拥有空前强大的功能，除了具备Smart系列的RMVB直播、文件管理系统以及双重密钥技术，S11还拓展了立体空间智能操作和智能娱乐中心两大系统。这款凝聚了OPPO公司的技术和设计精髓的产品是目前广大消费者最期待的产品之一。</P><P align=center><IMG src=\"http://img1.pconline.com.cn/pconline/0803/12/1243213_2_mthumb.jpg\" onload=imgresize(this); border=0></P><P align=center><FONT color=#3366cc>OPPO S11(2G)</FONT>&nbsp;&nbsp;<U><FONT color=#3366cc>图　库</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>评　测</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>论　坛</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>报　价</FONT></U></P><P align=left>　　OPPO Smart MP4系列具备RMVB直播、文件管理系统和双重密钥技术三大特点，而S11在此基础上拓展了立体空间智能操作和智能娱乐中心两项，让我们再次眼前一亮，丰富而强大的功能注定了该款产品将要引领新一轮的热潮。</P><P align=center><FONT color=#3366cc><IMG src=\"http://img1.pconline.com.cn/pconline/0803/12/1243213_6_mthumb.jpg\" onload=imgresize(this); border=0></FONT></P><P align=center><EPRO_SPLIT></P><P><STRONG>艾诺V2000 SE</STRONG></P><P>　　艾诺V2000 SE的主控运算速度达到400mHz，处理能力属于MP4的顶级水平，因此轻松实现RM/RMVB的全兼容，解码能力达到闪存MP4最强之列，无需转换、即拖即放。除此之外，V2000 SE同样全面支持其它最流行的主流视频格式，包括AVI/FLV/DAT/ASF/MP4/WMV/3GP/MPG等等，不用转换，直接播放，既丰富了用户的片源选择，又免除转换的烦恼，大大节省了用户的使用时间。 </P><P align=center><STRONG><IMG title=V2000se alt=V2000se src=\"http://img1.pconline.com.cn/pconline/0712/27/1194665_1194320_IMG_0246_mthumb.jpg\" border=0></STRONG></P><P align=center><FONT color=#3366cc>艾诺 V2000 SE(2G)</FONT>&nbsp;&nbsp;<U><FONT color=#3366cc>图　库</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>评　测</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>论　坛</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>报　价</FONT></U></P><P align=left>　　除了视频解码能力傲视群雄，V2000 SE音频以及娱乐功能同样非常出色， 包括支持APE/FLAC双无损音频，电子书阅读，FM调频收音，图片浏览，双线程任务管理，游戏等等，娱乐功能一应俱全。USB2.0高速接口，实现快速传输。</P><P align=center><IMG title=V2000se alt=V2000se src=\"http://img1.pconline.com.cn/pconline/0801/12/1205368_1194320_IMG_0254_mthumb.jpg\" border=0></P><P align=center><EPRO_SPLIT></P><P align=left><STRONG>蓝魔RM850+</STRONG></P><P align=left>　　蓝魔在成功推出第一款RK27XX方案产品RM970之后，蓝魔再次推出该方案另一款产品RM850+。作为产品的心脏，瑞芯微RK27XX方案提供了强大的核心支持，拥有出众的硬件设计和扩展能力，RK27XX采用先进ARM+DSP双内核架构，让RK27得以支持AVI，DivX、XviD，MPEG-4 SP/ASP；RMVB可支持到分辨率800×480流畅播放。支持绝大部分AVI、RMVB片源。</P><P align=center><IMG title=\"RM850 \" alt=\"RM850 \" src=\"http://img1.pconline.com.cn/pconline/0802/18/1224795_RM850-04.jpg\" border=0></P><P align=center><FONT color=#3366cc>蓝魔 RM850+(2G)</FONT>&nbsp;&nbsp;<U><FONT color=#3366cc>图　库</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>评　测</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>论　坛</FONT></U>&nbsp;&nbsp;<U><FONT color=#3366cc>报　价</FONT></U></P><P align=left>　　 最值得关注的是蓝魔RM850+支持热门的AVI、FLV等视频格式流畅播放，对rmvb的支持更是得以提升，目前已经支持到800*480分辨率的视频文件，热门的播客视频FLV更是全面支持，让爆笑短片和热门影视随时享受。RM850+具备2.8寸QVGA分辨率TFT液晶屏幕，采用传统的4：3比例，显示效果同样非常优秀。双无损音频格式就是指FLAC、APE。</P><P align=center><IMG title=蓝魔Mp3 alt=蓝魔Mp3 src=\"http://img1.pconline.com.cn/pconline/0803/05/1237773_2.jpg\" border=0></P>";
		int pageCount = getPageCount(articleText);
		String articleType = "";
		boolean allText = true;//是否显示全文
		String zip = "";//是否压缩
		List<String> briefs = getBriefs();
		int briefsLen = briefs != null ? briefs.size() : 0;
		Map<String, String> briefMap = getBriefMap(briefs);
		String id = "1385071";//文章id

		/** 暂时替换优酷视频链接，绕过HtmlFilter3的处理*/
		articleText = articleText.replace("http://www.pconline.com.cn/youku/iframe.html", "_TempYoukuUrl_");
		//171113 新js2标签过滤规则调整
		articleText =articleText.replaceAll("(?i)<p><strong[^<^>]*?class=\"js2-16(\\sjs2-16Ext)?\"[^<^>]*?>[\\s\\S]*?</strong></p>", "")
				.replaceAll("(?i)<strong[^<^>]*?class=\"js2-16(\\sjs2-16Ext)?\"[^<^>]*?>[\\s\\S]*?</strong>", "");
		//180122 js2改成了动态插入的形式
		articleText = articleText.replaceAll("(?i)<p><EPRO_PRODUCT2_JS>[\\s\\S]*?</EPRO_PRODUCT2_JS></p>", "")
				.replaceAll("(?i)<EPRO_PRODUCT2_JS>[\\s\\S]*?</EPRO_PRODUCT2_JS>", "");


		StringBuffer textBuffer = new StringBuffer();
		String[] pageText = articleText.split(pageSplitRegex);
		for(int i = 0 ; i < pageCount; i++){
			//加入分页结构
			if(briefsLen > i && allText){
				String briefPage = "<div class=\"page-title\" >"
						+ " <span id=\"content_page_" + (i + 1) + "\">" + briefMap.get(i + 1) + "</span>"
						+ "</div>";
				textBuffer.append(briefPage);
			}
			String tmpText = "";
			tmpText = new HtmlFilter34Pconline(zip == null, 450)
					.process(HtmlCMSUtils.filterRefreshImg(pageText[i], id, "http://mrobot.pconline.com.cn/v3/cms/articles/"));
			tmpText = tmpText.replaceFirst("^(</p>|</div>)*(\\s*\\S*)", "$2").replaceFirst("(((<div>)|(<p>))*)$", "");
			tmpText= replaceMp3Tag(tmpText);
			textBuffer.append(tmpText);
			if(!allText){//仅显示一页
				break;
			}
		}
		System.out.println(textBuffer.toString());
	}

	public static int getPageCount(String text){
		int nRet = 1;
		if(text!=null){
			String[] temp = text.split(pageSplitRegex);
			if(temp!=null){
				nRet = temp.length;
			}
		}
		return nRet;
	}

	public static String getPageText(int page,String text){
		String sRet = null;
		if(text != null){
			String[] temp = text.split(pageSplitRegex);
			if(temp!=null && page<=temp.length && page>=0){
				sRet = temp[page-1];
			}
		}
		return sRet;
	}

	public static Map<String, String> getBriefMap(List<String> briefs) {
		Map<String,String> briefMap = new HashMap<String, String>();
		if(briefs != null && briefs.size() > 0){
			for(int n = 0; n < briefs.size();n++){
				briefMap.put( "page" + n  ,briefs.get(n));
			}
		}
		return briefMap;
	}

	public static List<String> getBriefs(){
		//分页标签
//		List<ArticleBrief> briefs = article.getBriefs();
		List<String> list = new ArrayList<String>();
		return list;
	}

	//去掉mp3 父p标签
	public static String replaceMp3Tag(String text){
		if(!StringUtils.isBlank(text)){
			int startIndex = text.indexOf("<p><div class='m-audio' id='PlayA'>");
			if(startIndex >= 0){
				int endIndex = text.indexOf("</p>",startIndex);
				if(endIndex > 0){
					text = text.substring(0,startIndex) + text.substring(startIndex + 3, endIndex) + text.subSequence(endIndex + 4, text.length());
				}
			}
		}
		return text;
	}
}
